home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-02
/
prodpack.zip
/
DB4PPSRC.EXE
/
_DLLAY.PRG
< prev
next >
Wrap
Text File
|
1993-05-23
|
20KB
|
766 lines
PROCEDURE _DLLay
PARAMETERS pc_object, pc_type, pc_expr
*---------------------------------------------------------------------
* NAME
* _FXLay - LAYOUT:INVOKE menu program for screen designer
*
* DESCRIPTION
* DEPENDENCIES
* Uses PUBLIC variables fxn_detail, fxl_key, and fxl_uniq
*
*---------------------------------------------------------------------
PRIVATE lc_nokey, lc_sav_brd, ll_cursor, ll_dbtrap, ;
ll_escape, ll_exact, ll_fields, ll_near, ll_noalias, ll_scoreb, ;
ll_status, ll_talk, ll_toggle, lc_alias, ln_csel, ll_badenv, ;
ln_mem, ll_high, lc_MAlais, lc_FrmMast, ll_trap, ll_clock
*-----------------------
*-- Save the environment
*-----------------------
ll_talk = _TalkMode( .F. ) && Save current TALK mode.
lc_CoHigh = _ColorChk( "H" )
lc_CoBox = _ColorChk( "B" )
lc_CoMess = _ColorChk( "M" )
lc_display = SET( "DISPLAY" )
ln_navrow = IIF( "43" $ lc_display, 41, IIF( "50" $ lc_display, 48, 23 ) )
SET CATALOG OFF
ll_clock = SET( "CLOCK" )
lc_sav_brd = SET( "BORDER" ) && Save current BORDER setting.
SET BORDER TO
ll_cursor = SET( "CURSOR" ) = "ON"
SET CURSOR OFF
ll_dbtrap = SET( "DBTRAP" ) = "ON" && Save current DBTRAP mode.
SET DBTRAP OFF
ll_escape = SET( "ESCAPE" ) = "ON" && Save the ESCAPE state
SET ESCAPE OFF && Force ESCAPE OFF so prgs can't be stopped
ll_exact = SET( "EXACT" ) = "ON"
SET EXACT ON
ll_fields = SET( "FIELDS" ) = "ON"
SET FIELDS OFF
ll_near = SET( "NEAR" ) = "ON"
SET NEAR OFF
ll_scoreb = SET( "SCOREBOARD" ) = "ON"
SET SCOREBOARD OFF
ll_trap = SET( "TRAP" ) = "ON"
SET TRAP OFF
ll_status = SET( "STATUS" ) = "ON"
IF ll_status
SAVE SCREEN TO lc_status
SET STATUS OFF && Turn off busy STATUS in _fxlay
RESTORE SCREEN FROM lc_status
SET CLOCK ON && Show the clock in the designer
ENDIF
*-------------------------------
*-- Setup the return value array
*-------------------------------
PUBLIC ARRAY DLLayout[ 11 ]
*-- RB_TYPE_1 - ( ) ~Button
DLLayout[ 1 ] = .T.
*-- RB_TYPE_2 - ( ) ~Edit field
DLLayout[ 2 ] = .F.
*-- RB_TYPE_3 - ( ) ~Radio buttons
DLLayout[ 3 ] = .F.
*-- RB_TYPE_4 - ( ) ~Check boxes
DLLayout[ 4 ] = .F.
*-- RB_TYPE_5 - ( ) Combo box - ~Drop down
DLLayout[ 5 ] = .F.
*-- RB_TYPE_6 - ( ) Combo box - Drop down lis~t
DLLayout[ 6 ] = .F.
*-- RB_TYPE_7 - ( ) Combo box - ~Simple
DLLayout[ 7 ] = .F.
*-- RB_TYPE_8 - ( ) ~List box
DLLayout[ 8 ] = .F.
*-- BT_OK - Ok
DLLayout[ 9 ] = .T.
*-- BT_CANCEL - Cancel
DLLayout[ 10 ] = .F.
*-- BT_HELP - ~Help
DLLayout[ 11 ] = .F.
FXL_Cancel = .F.
FXL_NoChng = .T.
DO DLLayout
IF .NOT. FXL_Cancel
n = 1
DO WHILE n <= 8
IF DLLayout[ n ]
EXIT
ENDIF
n = n + 1
ENDDO
DO CASE
CASE n = 1
DO _DLButton
CASE n = 2
DO _DLEdit
CASE n = 3
DO _DLRadio
CASE n = 4
DO _DLCheck
CASE n = 5
DO _DLCombo WITH "CS_"
CASE n = 6
DO _DLCombo WITH "CD_"
CASE n = 7
DO _DLCombo WITH "LB_"
CASE n = 8
DO _DLCombo WITH "CL_"
ENDCASE
ENDIF
*--------------------------
*-- Restore the environment
*--------------------------
RELEASE DLLayout
SET BORDER TO &lc_sav_brd.
IF ll_cursor
SET CURSOR ON
ENDIF
IF ll_dbtrap
SET DBTRAP ON
ENDIF
IF ll_exact
SET EXACT ON
ENDIF
IF ll_fields
SET FIELDS ON
ENDIF
IF ll_near
SET NEAR ON
ENDIF
IF ll_status
SET STATUS ON
RESTORE SCREEN FROM lc_status
RELEASE SCREEN lc_status
SET CLOCK ON
ENDIF
IF ll_scoreb
SET SCOREBOARD ON
ENDIF
IF ll_trap
SET TRAP ON
ELSE
SET TRAP OFF
ENDIF
IF ll_escape
SET ESCAPE ON
ELSE
SET ESCAPE OFF
ENDIF
SET CATALOG ON
IF _TalkMode( ll_talk )
ENDIF
RETURN
*-- EOP: _DLLay
PROCEDURE _DLButton
*----------------------------------------------------------------------------
* NAME
* _DLButton -
*
* DESCRIPTION
*
*----------------------------------------------------------------------------
PUBLIC ARRAY DLBUTTON[ 7 ]
*-- CD_COMM_1 - XXXXXX [v]
DLBUTTON[ 1 ] = [ ] + SPACE( 4 )
*-- RB_FLAG_1 - ( ) ~Normal
DLBUTTON[ 2 ] = .T.
*-- RB_FLAG_2 - ( ) ~Default
DLBUTTON[ 3 ] = .F.
*-- EF_TEXT_1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLBUTTON[ 4 ] = SPACE( 36 )
*-- BT_OK - Ok
DLBUTTON[ 5 ] = .T.
*-- BT_CANCEL - Cancel
DLBUTTON[ 6 ] = .F.
*-- BT_HELP - ~Help
DLBUTTON[ 7 ] = .F.
*--------------------------------------------------------------
*-- FXL_Cancel is set to .T. is the user Cancels the dialog box
*--------------------------------------------------------------
FXL_Cancel = .F.
*--------------------------------------------------------------
*-- FXL_NoChng lets the dialog box know that the values in the
*-- array are not different from the SCR file defaults. This
*-- will allow the dialog box to use the .WIN file for a faster
*-- startup.
*--------------------------------------------------------------
FXL_NoChng = .T.
DO DLButton
IF .NOT. FXL_Cancel
KEYBOARD [{Alt-F}I] + [N] CLEAR
KEYBOARD "BT_" + TRIM( dlbutton[1] ) + CHR(13)
KEYBOARD [T] + [{Home}{Ctrl-Y}]
IF .NOT. LEFT( dlbutton[4], 1 ) $ (['"]+'[')
DLButton[4] = Delimit( TRIM( DLButton[4] ) )
ENDIF
KEYBOARD &dlbutton[4] + CHR(13)
KEYBOARD [E]
IF dlbutton[3]
KEYBOARD [D]
KEYBOARD '"DEFAULT"' + CHR(13)
ENDIF
KEYBOARD [C]
KEYBOARD [{Ctrl-End}]
KEYBOARD [{Ctrl-End}]
ENDIF
RELEASE DLButton
RETURN
*-- EOP: _DLButton
FUNCTION DLButtCD
IF TYPE( "aClkObj[1,1]" ) = "N"
IF ISBLANK( EF_TEXT_1 )
nLenEf = LEN( ef_text_1 )
DO CASE
CASE CD_COMM_1 = "OK"
ef_text_1 = LEFT( "' Ok '" + SPACE( nLenEf ), nLenEf )
CASE CD_COMM_1 = "CANCEL"
ef_text_1 = LEFT( "' Cancel '" + SPACE( nLenEf ), nLenEf )
CASE CD_COMM_1 = "HELP"
ef_text_1 = LEFT( "' Help '" + SPACE( nLenEf ), nLenEf )
ENDCASE
DO Tedit WITH WM_PAINT, EN_KILLFOC, 20
ENDIF
ENDIF
RETURN .T.
*-- EOF: DLButtCd
PROCEDURE _DLEdit
*----------------------------------------------------------------------------
* NAME
* _DLEdit -
*
* DESCRIPTION
*
*----------------------------------------------------------------------------
PUBLIC ARRAY DLEDIT[ 10 ]
*-- EF_NAME_1 - XXXX
DLEDIT[ 1 ] = SPACE( 4 )
*-- EF_CAPT_1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLEDIT[ 2 ] = SPACE( 34 )
*-- RB_TYPE_1 - ( ) ~Text
DLEDIT[ 3 ] = .T.
*-- RB_TYPE_2 - ( ) ~Numeric
DLEDIT[ 4 ] = .F.
*-- RB_TYPE_3 - ( ) ~Date
DLEDIT[ 5 ] = .F.
*-- CK_CASE_1 - [ ] ~Upper case
DLEDIT[ 6 ] = .F.
*-- EF_FLEN_1 - 99
DLEDIT[ 7 ] = 8
*-- BT_OK - Ok
DLEDIT[ 8 ] = .T.
*-- BT_CANCEL - Cancel
DLEDIT[ 9 ] = .F.
*-- BT_HELP - ~Help
DLEDIT[ 10 ] = .F.
FXL_Cancel = .F.
FXL_NoChng = .T.
DO DLEdit
IF .NOT. FXL_Cancel
CLEAR TYPEAHEAD
KEYBOARD [{DnArrow}]
KEYBOARD [{Alt-F}I] + [N]
KEYBOARD "EF_" + TRIM( DLEdit[1] ) + "_1" + CHR( 13 )
DO CASE
CASE DLEdit[3] && Text
IF DLEdit[6] && Upper case
KEYBOARD [P] + [U]
KEYBOARD [{Ctrl-End}]
ENDIF
KEYBOARD [T]
KEYBOARD [{Home}{Ctrl-Y}] + REPLICATE("X",DLEdit[7] ) + CHR(13)
KEYBOARD [{Ctrl-End}]
CASE DLEdit[4] && Numeric
KEYBOARD [V]
KEYBOARD [T]
KEYBOARD [{Home}{Ctrl-Y}] + REPLICATE("9",DLEdit[7] ) + CHR(13)
KEYBOARD [{Ctrl-End}]
CASE DLEdit[5] && Date
KEYBOARD [V]
KEYBOARD CHR(13) + CHR(13)
KEYBOARD [{Ctrl-End}]
ENDCASE
KEYBOARD [{LeftArrow}{UpArrow}]
IF .NOT. ISBLANK( DLEdit[2] ) && Caption
KEYBOARD [{F10}]
KEYBOARD [{Alt-F}I] + [N]
KEYBOARD "EF_" + TRIM( DLEdit[1] ) + "_0" + CHR( 13 )
KEYBOARD [T] + [{Home}{Ctrl-Y}]
KEYBOARD TRIM( DLEdit[2] ) + CHR( 13 )
KEYBOARD [{Ctrl-End}]
ENDIF
ENDIF
RELEASE DLEdit
RETURN
*-- EOP: _DLEdit
PROCEDURE _DLRadio
*----------------------------------------------------------------------------
* NAME
* _DLRadio -
*
* DESCRIPTION
*
*----------------------------------------------------------------------------
PUBLIC ARRAY DLRADIO[ 23 ]
*-- EF_NAME_1 - XXXX
DLRADIO[ 1 ] = SPACE( 4 )
*-- EF_GRP_1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 2 ] = SPACE( 34 )
*-- RB_DEF_1 - ( )
DLRADIO[ 3 ] = .T.
*-- RB_DEF_2 - ( )
DLRADIO[ 4 ] = .F.
*-- RB_DEF_3 - ( )
DLRADIO[ 5 ] = .F.
*-- RB_DEF_4 - ( )
DLRADIO[ 6 ] = .F.
*-- RB_DEF_5 - ( )
DLRADIO[ 7 ] = .F.
*-- RB_DEF_6 - ( )
DLRADIO[ 8 ] = .F.
*-- RB_DEF_7 - ( )
DLRADIO[ 9 ] = .F.
*-- RB_DEF_8 - ( )
DLRADIO[ 10 ] = .F.
*-- RB_DEF_9 - ( )
DLRADIO[ 11 ] = .F.
*-- EF_LAB_1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 12 ] = SPACE( 38 )
*-- EF_LAB_2 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 13 ] = SPACE( 38 )
*-- EF_LAB_3 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 14 ] = SPACE( 38 )
*-- EF_LAB_4 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 15 ] = SPACE( 38 )
*-- EF_LAB_5 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 16 ] = SPACE( 38 )
*-- EF_LAB_6 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 17 ] = SPACE( 38 )
*-- EF_LAB_7 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 18 ] = SPACE( 38 )
*-- EF_LAB_8 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 19 ] = SPACE( 38 )
*-- EF_LAB_9 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLRADIO[ 20 ] = SPACE( 38 )
*-- BT_OK - Ok
DLRADIO[ 21 ] = .T.
*-- BT_CANCEL - Cancel
DLRADIO[ 22 ] = .F.
*-- BT_HELP - ~Help
DLRADIO[ 23 ] = .F.
FXL_Cancel = .F.
FXL_NoChng = .T.
DO DLRadio
IF .NOT. FXL_Cancel .AND. .NOT. ISBLANK( DLRadio[10] )
CLEAR TYPEAHEAD
IF .NOT. ISBLANK( DLRadio[2] )
KEYBOARD [{Alt-F}I] + [N]
KEYBOARD "RB_" + TRIM( DLRadio[1] ) + "_0" + CHR( 13 )
KEYBOARD [T] + [{Home}{Ctrl-Y}]
KEYBOARD TRIM( DLRadio[2] ) + CHR( 13 )
KEYBOARD [{Ctrl-End}]
KEYBOARD [{LeftArrow}{DnArrow}]
ENDIF
nFld = 12
DO WHILE nFld <= 20
IF .NOT. ISBLANK( DLRadio[nFld] )
KEYBOARD [{Alt-F}I] + [N]
KEYBOARD "RB_" + TRIM( DLRadio[1] ) + "_" +;
STR( nFld - 11, 1 ) + CHR(13)
KEYBOARD [V] + CHR(13)
KEYBOARD [T] + [{Home}{Ctrl-Y}]
KEYBOARD "( ) " + TRIM( DLRadio[nFld] ) + CHR(13)
IF DLRadio[ nFld - 9 ]
KEYBOARD [E] + [D] + ".T." + CHR(13)
KEYBOARD [{Ctrl-End}]
ENDIF
KEYBOARD [{Ctrl-End}]
KEYBOARD [{LeftArrow}{DnArrow}]
ELSE
EXIT
ENDIF
nFld = nFld + 1
ENDDO
ENDIF
RELEASE DLRadio
RETURN
*-- EOP: _DLRadio
PROCEDURE _DLCheck
*----------------------------------------------------------------------------
* NAME
* _DLCheck -
*
* DESCRIPTION
*
*----------------------------------------------------------------------------
PUBLIC ARRAY DLCHECK[ 23 ]
*-- EF_NAME_1 - XXXX
DLCHECK[ 1 ] = SPACE( 4 )
*-- EF_GRP_1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 2 ] = SPACE( 34 )
*-- CK_DEF_1 - [ ]
DLCHECK[ 3 ] = .F.
*-- CK_DEF_2 - [ ]
DLCHECK[ 4 ] = .F.
*-- CK_DEF_3 - [ ]
DLCHECK[ 5 ] = .F.
*-- CK_DEF_4 - [ ]
DLCHECK[ 6 ] = .F.
*-- CK_DEF_5 - [ ]
DLCHECK[ 7 ] = .F.
*-- CK_DEF_6 - [ ]
DLCHECK[ 8 ] = .F.
*-- CK_DEF_7 - [ ]
DLCHECK[ 9 ] = .F.
*-- CK_DEF_8 - [ ]
DLCHECK[ 10 ] = .F.
*-- CK_DEF_9 - [ ]
DLCHECK[ 11 ] = .F.
*-- EF_LAB_1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 12 ] = SPACE( 38 )
*-- EF_LAB_2 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 13 ] = SPACE( 38 )
*-- EF_LAB_3 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 14 ] = SPACE( 38 )
*-- EF_LAB_4 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 15 ] = SPACE( 38 )
*-- EF_LAB_5 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 16 ] = SPACE( 38 )
*-- EF_LAB_6 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 17 ] = SPACE( 38 )
*-- EF_LAB_7 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 18 ] = SPACE( 38 )
*-- EF_LAB_8 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 19 ] = SPACE( 38 )
*-- EF_LAB_9 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCHECK[ 20 ] = SPACE( 38 )
*-- BT_OK - Ok
DLCHECK[ 21 ] = .T.
*-- BT_CANCEL - Cancel
DLCHECK[ 22 ] = .F.
*-- BT_HELP - ~Help
DLCHECK[ 23 ] = .F.
FXL_Cancel = .F.
FXL_NoChng = .T.
DO DLCheck
IF .NOT. FXL_Cancel .AND. .NOT. ISBLANK( DLCheck[10] )
CLEAR TYPEAHEAD
IF .NOT. ISBLANK( DLCheck[2] )
KEYBOARD [{Alt-F}I] + [N]
KEYBOARD "CK_" + TRIM( DLCheck[1] ) + "_0" + CHR( 13 )
KEYBOARD [T] + [{Home}{Ctrl-Y}]
KEYBOARD TRIM( DLCheck[2] ) + CHR( 13 )
KEYBOARD [{Ctrl-End}]
KEYBOARD [{LeftArrow}{DnArrow}]
ENDIF
nFld = 12
DO WHILE nFld <= 20
IF .NOT. ISBLANK( DLCheck[nFld] )
KEYBOARD [{Alt-F}I] + [N]
KEYBOARD "CK_" + TRIM( DLCheck[1] ) + "_" +;
STR( nFld - 11, 1 ) + CHR(13)
KEYBOARD [V] + CHR(13)
KEYBOARD [T] + [{Home}{Ctrl-Y}]
KEYBOARD "[ ] " + TRIM( DLCheck[nFld] ) + CHR(13)
IF DLCheck[ nFld - 9 ]
KEYBOARD [E] + [D] + ".T." + CHR(13)
KEYBOARD [{Ctrl-End}]
ENDIF
KEYBOARD [{Ctrl-End}]
KEYBOARD [{LeftArrow}{DnArrow}]
ELSE
EXIT
ENDIF
nFld = nFld + 1
ENDDO
ENDIF
RELEASE DLCheck
RETURN
*-- EOP: _DLCheck
PROCEDURE _DLCombo
PARAMETERS pcClass
*----------------------------------------------------------------------------
* NAME
* _DLCombo -
*
* DESCRIPTION
*
* PARAMETERS
* pcClass =
*
*----------------------------------------------------------------------------
PUBLIC ARRAY DLCOMBO[ 16 ]
*-- EF_FLD_1 - XXXX
DLCOMBO[ 1 ] = SPACE( 4 )
*-- EF_LAB_1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 2 ] = SPACE( 38 )
*-- EF_DDH_1 - 99
DLCOMBO[ 3 ] = 6
*-- EF_DDW_1 - 99
DLCOMBO[ 4 ] = 10
*-- CL_TYPE_1 - XXXXXXXXXXXXXXXXXX [v]
DLCOMBO[ 5 ] = 'Specified choices' + SPACE( 5 )
*-- EF_POS_1 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 6 ] = SPACE( 34 )
*-- EF_ICP_1 - XXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 7 ] = SPACE( 25 )
*-- EF_ICP_2 - XXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 8 ] = SPACE( 25 )
*-- EF_ICP_3 - XXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 9 ] = SPACE( 25 )
*-- EF_ICP_4 - XXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 10 ] = SPACE( 25 )
*-- EF_ICP_5 - XXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 11 ] = SPACE( 25 )
*-- EF_ICP_6 - XXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 12 ] = SPACE( 25 )
*-- EF_ICP_7 - XXXXXXXXXXXXXXXXXXXXXXXXX
DLCOMBO[ 13 ] = SPACE( 25 )
*-- BT_OK - Ok
DLCOMBO[ 14 ] = .T.
*-- BT_CANCEL - Cancel
DLCOMBO[ 15 ] = .F.
*-- BT_HELP - Help
DLCOMBO[ 16 ] = .F.
FXL_Cancel = .F.
FXL_NoChng = .T.
DO CASE
CASE pcClass = "CD_"
DBW_LIST = "Add - Combo Box: Drop-Down"
CASE pcClass = "CL_"
DBW_LIST = "Add - List Box: Drop-Down"
CASE pcClass = "CS_"
DBW_LIST = "Add - Combo Box: Simple"
CASE pcClass = "LB_"
DBW_LIST = "Add - List Box"
ENDCASE
DO DLCOMBO
IF .NOT. FXL_Cancel && The user clicked on OK
CLEAR TYPEAHEAD
IF .NOT. ISBLANK( DLCombo[ 2 ] ) && Group Label
KEYBOARD [{Alt-F}I] + [N]
KEYBOARD pcClass + TRIM( DLCombo[1] ) + "_0" + CHR( 13 )
KEYBOARD [T] + [{Home}{Ctrl-Y}]
KEYBOARD TRIM( DLCombo[2] ) + CHR( 13 )
KEYBOARD [{Ctrl-End}]
KEYBOARD [{LeftArrow}{DnArrow}]
ENDIF
KEYBOARD [{Alt-F}I] + [N]
KEYBOARD pcClass + TRIM( DLCombo[1] ) + "_1" + CHR( 13 )
KEYBOARD [T] + [{Home}{Ctrl-Y}]
KEYBOARD REPLICATE( "X", DLCombo[4] ) + CHR(13)
DO CASE
CASE pcClass = "CD_"
KEYBOARD [T] + " [v]" + CHR(13)
CASE pcClass = "CL_"
KEYBOARD [T] + " [v]" + CHR(13)
CASE pcClass = "CS_"
CASE pcClass = "LB_"
ENDCASE
KEYBOARD [P] + [M]
IF DLCombo[ 5 ] <> "Specified choices"
KEYBOARD TRIM(DLCombo[6]) + CHR(13) + [{Ctrl-End}]
ELSE
nChoice = 7
DO WHILE nChoice <= 13
IF .NOT. ISBLANK( DLCombo[ nChoice ] )
KEYBOARD TRIM( DLCombo[ nChoice ] ) + ","
ELSE
KEYBOARD [{BackSpace}] + CHR(13) + [{Ctrl-End}]
EXIT
ENDIF
nChoice = nChoice + 1
ENDDO
IF nChoice = 14
KEYBOARD [{BackSpace}] + CHR(13) + [{Ctrl-End}]
ENDIF
ENDIF
KEYBOARD [{Ctrl-End}]
*-- Start box drawing
KEYBOARD [{LeftArrow}{DnArrow}]
KEYBOARD [{Alt-L}BD] + CHR(13)
n = 1
DO WHILE n <= DLCombo[3]
KEYBOARD [{DnArrow}]
n = n + 1
ENDDO
KEYBOARD [{DnArrow}]
n = 1
DO WHILE n <= DLCombo[4]
KEYBOARD [{RightArrow}]
n = n + 1
ENDDO
KEYBOARD [{RightArrow}]
KEYBOARD CHR(13)
n = 1
DO WHILE n <= DLCombo[4]
KEYBOARD [{LeftArrow}]
n = n + 1
ENDDO
KEYBOARD [{LeftArrow}]
n = 1
DO WHILE n <= DLCombo[3]
KEYBOARD [{UpArrow}]
n = n + 1
ENDDO
KEYBOARD [{UpArrow}]
KEYBOARD [{F6}] + CHR(13)
KEYBOARD [{F7}{UpArrow}{RightArrow}] + CHR(13)
ENDIF
RELEASE DLCombo
RETURN
*-- EOP: _DLCombo WITH pnListType
FUNCTION DLCRb
*---------------------------------------------------------------------
* NAME
* DBCRb - Validation routines for list choices
*---------------------------------------------------------------------
PRIVATE cVarName
IF TYPE( "aClkObj[1,1]" ) = "N"
cVarName = IIF( TYPE( "pcClass" ) = "C", pcClass, "" )
cVarName = cVarName + TRIM( EF_FLD_1 ) + "_1"
DO CASE
CASE CL_TYPE_1 = "Files like"
IF pcClass <> "LB_"
EF_POS_1 = LEFT( "FILES LIKE {" + cVarName + "}" + SPACE(34), 34 )
ELSE
EF_POS_1 = LEFT( "FILES LIKE *.*" + SPACE(34), 34 )
ENDIF
CASE CL_TYPE_1 = "Do program"
EF_POS_1 = LEFT( "DO " + SPACE(34), 34 )
CASE CL_TYPE_1 = "Specified choices"
EF_POS_1 = SPACE( 34 )
ENDCASE
DO Tedit WITH WM_PAINT, EN_KILLFOC, 14 && EF_POS_1
ENDIF
RETURN .t.
*-- EOP: DLCRb
FUNCTION Delimit
PARAMETERS pcString
*----------------------------------------------------------------------------
* DESCRIPTION
*
* PARAMETERS
* pcString =
*
*----------------------------------------------------------------------------
IF ASC( pcString ) < 32
IF LEN( pcString ) = 1
lcResult = "CHR( " + ASC( pcString ) + " )"
ELSE
IF LEN( pcString ) = 0
lcResult = ""
ELSE
lcResult = "REPLICATE( CHR( " + ASC( pcString ) + " ), " + ;
STR( LEN( pcString ) ) + " )"
ENDIF
ENDIF
ELSE
cLeft= '"'
cRight = '"'
IF AT( '"', pcString ) > 0
IF AT( "'", pcString ) > 0
cLeft = "["
cRight = "]"
ELSE
cLeft = "'"
cRight = "'"
ENDIF
ENDIF
lcResult = cLeft + pcString + cRight
ENDIF
RETURN( lcResult )
*-- EOF: Delimit( pcString )